/**
 * 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,
 * 所有偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变
 */
public class suanfa03 {
    public void reOrderArray(int[] array) {
        int k = 0;
        for (int i = 0; i < array.length; i++) {
            if ((array[i] & 1) == 1) {//从左到右,每次遇到的,都是最前面的奇数,一定将来要被放在k 下标出
                int tmp = array[i];//现将当前奇数保存起来
                int j = i;
                while (j > k) {//将该奇数之前的内容(偶数序列),整体后移一个位置
                    array[j] = array[j-1];
                    j--;
                }
                array[k++] = tmp;//将奇数保存在他将来改在的位置,因为从左往右放的,没有跨越奇数,所以一定是相对位置不变的
            }

        }
    }
}
